﻿using System;
using System.Collections.Generic;
using System.Text;

namespace ThomasGIS.Grids.GeoTiff
{
    public class GeoKeysDesc
    {
        // 编号1024
        /* 
        ModelTypeProjected   = 1  Projection Coordinate System
        ModelTypeGeographic  = 2   Geographic latitude-longitude System 
        ModelTypeGeocentric  = 3   Geocentric (X,Y,Z) Coordinate System 
        */
        public int GTModelTypeGeoKey = -1;

        // 编号1025
        /*
        RasterPixelIsArea  = 1
        RasterPixelIsPoint = 2
        */
        public int GTRasterTypeGeoKey = -1;

        // 编号2048
        public int GeogGeodeticCRSGeoKey = -1;

        // 编号2050
        public int GeogGeodeticDatumGeoKey = -1;

        // 编号2051
        public int GeogPrimeMeridianGeoKey = -1;

        // 编号2052
        public int GeogLinearUnitsGeoKey = -1;

        // 编号2054
        public int GeogAngularUnitsGeoKey = -1;

        // 编号2056
        public int GeogEllipsoidGeoKey = -1;

        // 编号2060
        public int GeogAzimuthUnitGeoKey = -1;

        // 编号3072
        public int ProjectedCRSGeoKey = -1;

        // 编号3074
        public int ProjectionGeoKey = -1;

        // 编号3075
        public int ProjectionMethodGeoKey = -1;

        // 编号3076
        public int ProjLinearUnitGeoKey = -1;

        // 编号4096
        public int VerticalGeoKey = -1;

        // 编号4098
        public int VerticalDatumGeoKey = -1;

        // 编号4099
        public int VerticalUnitSizeGeoKey = -1;

        // 编号2061
        // This key allows definition of user-defined Prime Meridians, the location of which is defined by its longitude relative to Greenwich.
        public double GeogPrimeMeridianLongitudeGeoKey = -1;

        // 编号2053
        // Allows the definition of user-defined linear geocentric units, as measured in meters.
        public double GeogLinearUnitSizeGeoKey = -1;

        // 编号2055
        // Allows the definition of user-defined angular geographic units, as measured in radians.
        public double GeogAngularUnitSizeGeoKey = -1;

        // 编号2057
        public double EllipsoidSemiMajorAxisGeoKey = -1;

        // 编号2058
        public double EllipsoidSemiMinorAxisGeoKey = -1;

        // 编号2059
        public double EllipsoidInvFlatteningGeoKey = -1;

        // 编号3077
        public double ProjLinearUnitSizeGeoKey = -1;

        // 编号3078
        public double ProjStandardParallel_1 = -1;

        // 编号3079
        public double ProjStandardParallel_2 = -1;

        // 编号3080
        public double ProjNaturalOriginLongitude = -1;

        // 编号3081
        public double ProjNaturalOriginLatitude = -1;

        // 编号3082
        public double ProjFalseEasting = -1;

        // 编号3083
        public double ProjFalseNorthing = -1;

        // 编号3084
        public double ProjFalseOriginLongitude = -1;

        // 编号3085
        public double ProjFalseOriginLatitude = -1;

        // 编号3086
        public double ProjFalseOriginEasting = -1;

        // 编号3087
        public double ProjFalseOriginNorthing = -1;

        // 编号3088
        public double ProjCenterLongitude = -1;

        // 编号3089
        public double ProjCenterLatitude = -1;

        // 编号3090
        public double ProjProjectionCenterEasting = -1;

        // 编号3091
        public double ProjProjectionCenterNorthing = -1;

        // 编号3092
        public double ProjScaleAtNaturalOrigin = -1;

        // 编号3093
        public double ProjScaleAtCenter = -1;

        // 编号3094
        public double ProjProjAzimuthAngleGeoKey = -1;

        // 编号3095
        public double ProjStraightVerticalPole = -1;

        // 编号1026
        // As with all the "Citation" GeoKeys, this is provided to give an ASCII reference to published documentation on the overall configuration of this GeoTIFF file.
        public string GTCitationGeoKey = "";

        // 编号2049
        // General citation and reference for all Geographic CS parameters.
        public string GeogCitationGeoKey = "";

        // 编号3073
        public string ProjectedCitationGeoKey = "";

        // 编号4097
        public string VerticalCitationGeoKey = "";
    }
}
